1. Field of the Invention
The present invention relates to methods and apparatuses for data compression and, more specifically, to a method and apparatus for header compression/decompression used in a data transmission system where a packet is compressed in a transmitting side and decompressed in a receiving side.
2. Description of the Background Art
Typical protocols recently known for data transmission over the Internet include TCP/IP (Transmission Control Protocol/Internet Protocol) and UDP/IP (User Datagram Protocol/Internet Protocol). One protocol known for real-time transmission of data such as audio and images under TCP/IP or UDP/IP is RTP (Realtime Transport Protocol), which is described in detail in “RTP: A Transport Protocol for Real-Time Applications”, H. Schulzrinne, S. Casner, R. Frederik, and V. Jacobson, RFC1889, 1996.
When data is transmitted by unit of a packet in compliance with the protocols such as TCP/IP, the transmitting side adds a header to each packet. In data transmission over a low and midrange bit rate transmission path, however, the added header specified by TCP, UDP, IP, or other protocols increases the packet size, thereby disadvantageously causing overhead associated with communication. For example, to transmit 10-byte data under UDP/IP, the transmitting side has to add a 28-byte header to the original data, resultingly forming a 38-byte packet, which is approximately four times larger in size than the original data. If such increase happens quite often, the effective speed of the transmission path is substantially decreased.
In order to reduce communication overhead caused by the added header, a header compression scheme developed by V. Jacobson and defined in RFC 1144 and RFC2508 has been known. In this scheme, among the fields of the header included in the packet, transmitted are only any field changed in value from the one included in the previous packet. Such field changed in value are not so many in the header, and therefore, in this scheme, header compression poses no special problem.
The Jacobson's header compression scheme is a standard for wired communication with a low transmission error rate, and is not suitable for wireless communication with a high transmission error rate. For example, consider a case where point-to-point communication is carried out under a protocol such as PPP (Point to Point Protocol) over a network shown in FIG. 6A or 6B between a gateway server 72 and a terminal 74 or a portable wireless terminal 77. As shown in FIG. 6A, when the gateway server 72 and the terminal 74 are connected to each other via a wired communication network 73 constructed by a modem, ISDN, or LAN, the Jacobson's header compression scheme works quite effectively. On the other hand, as shown in FIG. 6B, the gateway server 72 and the portable wireless terminal 77 are coupled to each other via a cellular phone network 75 by W-CDMA (Wideband Code Division Multiple Access), for example. Such network structure as shown in FIG. 6B has been widely adopted, with a recent increase in cellular phone users. In this network, however, transmission errors are prone to occur in a wireless transmission section 76, and therefore the Jacobson's header compression scheme does not effectively work.
One example of the header compression scheme for wireless communication where transmission errors frequently occur is known as ROHC (Robust Header Compression) studied by IETF (Internet Engineering Task Force). The detail of ROHC is described in “draft-ietf-rohc-rtp-00.txt Jun. 29, 2000”.
FIG. 7 is a block diagram showing the structure of a data transmitting apparatus and a data receiving apparatus using ROHC. In FIG. 7, a data transmitting apparatus 80 compresses the header of each packet by referring to reference information stored in a reference information manager 85, and transmits the compressed packet. A data receiving apparatus 90 decompresses the header of each received packet by referring to reference information stored in a reference information manager 95.
Here, the reference information is information indicating how each field included in the header of the packet is changed from the one included in the header of the previous packet. For example, the header includes a UDP port number, an RTP sequence number, and an RTP timestamp. Assume herein that, compared with the header of the previous packet, the UDP port number is not changed, the RTP sequence number is increased by 1, and the RTP timestamp is increased by 50. In this case, the reference information indicates the states of the UDP port number, the RTP sequence number, and the RTP timestamp as assumed above.
FIGS. 8 to 11 are sequence charts of ROHC. In FIG. 8, the data transmitting apparatus 80 and the data receiving apparatus 90 both hold the same reference information α. When transmitting a header H1 and data D1, the data transmitting apparatus 80 refers to the reference information α stored in the reference information manager 85 to find a compressed header P1 by the following equation (1), and transmits a packet composed of the compressed header P1 and the data D1.P1=H1*α  (1)where * represents an operation applied to the header and the reference information. The operation * varies for each field of the header.
On receiving the packet composed of the compressed header P1 and the data D1, the data receiving apparatus 90 refers to the reference information α stored in the reference information manager 95, and carries out an inverse operation of the operation represented by the above equation (1) to decompress the compressed header P1 to the header H1.
Similarly, the data transmitting apparatus 80 then transmits a packet composed of a compressed header Pi and data Di, and the data receiving apparatus 90 decompresses the compressed header Pi included in the received packet to the original header Hi.
Also in data transmission under ROHC, the manner of changes in the field included in the header may be varied during data transmission. For example, the RTP timestamp has been increased so far by 50, but by 100 at some point in time and thereafter. In this case, the data transmitting apparatus 80 and the data receiving apparatus 90 both have to correctly update the respective reference information.
The data transmitting apparatus 80 detects that the manner of changes in the field of the packet to be transmitted becomes varied and, based on the detection, updates the reference information stored in the reference information manager 85. In the above example, the data transmitting apparatus 80 updates the reference information α from “the RTP timestamp is increased by 50” to “the RTP timestamp is increased by 100”. The updated reference information is hereinafter referred to as reference information β.
The data receiving apparatus 90 also has to update its own reference information to correctly decompress the header even after the data transmitting apparatus 80 updates its own reference information. Therefore, the data transmitting apparatus 80 transmits a packet together with information for updating the reference information at the receiving side (such information is hereinafter referred to as “update information”). With the received update information, the data receiving apparatus 90 updates the reference information stored in the reference information manager 95, and notifies the data transmitting apparatus 80 that the reference information has been correctly updated. The update information may be the updated reference information itself, or information indicating the difference between the reference information α and the reference information β.
In order for the data transmitting apparatus 80 to confirm that the reference information of the data receiving apparatus 90 has been correctly updated, two modes are known, that is, a “reliable mode” that ensures the reliability and an “optimistic mode” in consideration of compression efficiency. These modes are described in the above document (“draft-ietf-rohc-rtp-00.txt 29, Jun. 2000”). FIG. 9 is a sequence chart for the reliable mode. The data transmitting apparatus 80 operating in the reliable mode updates the reference information from α to β, and then transmits a packet with the update information added thereto until receiving a packet indicating that the reference information of the data receiving apparatus 90 has been correctly updated. Such packet is hereinafter referred to as “ACK packet”. At this time, the data transmitting apparatus 80 refers to the updated reference information β to compress the header of the packet with the update information first added thereto and the headers of the packets coming thereafter. In FIG. 9, the updated reference information β is used as the update information Pi, represents a header compressed by referring to the reference information α, and Qi represents a header compressed by referring to the updated reference information β.
FIGS. 10 and 11 are sequence charts for the optimistic mode. The data transmitting apparatus 80 operating in the optimistic mode updates the reference information from α to β, and then adds the update information to only one packet for transmission. Thereafter, assuming that the reference information of the data receiving apparatus 90 has been correctly updated even without receiving the ACK packet, the data transmitting apparatus 80 transmits packets without the update information added thereto. At this time, the data transmitting apparatus 80 refers to the updated reference information β to compress the header of the packet with the update information added thereto and the headers of the packets coming thereafter. In this case, as shown in FIG. 10, if the data receiving apparatus 90 correctly receives the update information and updates the reference information from α to β by referring to the update information, no problem occurs in data transmission thereafter.
However, if failing to receive the update information as shown in FIG. 11, the data receiving apparatus 90 continues to decompress the header by referring to the original reference information α. The data receiving apparatus 90 carries out CRC (Cyclic Redundancy Check), for example, to detect any header decompression error. If detecting any header decompression error, the data receiving apparatus 90 transmits a packet for requesting transmission of the update information. Such packet is hereinafter referred to as “NACK packet”. On receiving the NACK packet, the data transmitting apparatus 80 adds again the update information to one packet for transmission. Therefore, the data receiving apparatus 90 cannot correctly decompress the header from the time when failing to receive the packet with the update information added thereto to the time when receiving another packet with the update information added thereto.
Described below are the characteristics and drawbacks of the above described two modes for header compression, that is, the reliable mode and the optimistic mode.
In the reliable mode, the reference information is always correctly updated at the transmitting and receiving sides, thereby suppressing the occurrence of header decompression error at the receiving side. However, the transmitting side continues to transmit the packets with the update information added thereto until receiving the ACK packet, thereby degrading header compression efficiency and entire data transmission efficiency.
In the optimistic mode, the transmitting side adds the update information to only one packet for transmission and, even without receiving the ACK packet, compresses the headers of the packets coming thereafter by referring to the updated reference information. Therefore, if the data receiving apparatus 90 has correctly received the update information, high header compression efficiency can be achieved. However, if the data receiving apparatus 90 has not correctly received the update information due to transmission error, header decompression errors continuously occur until receiving the update information, thereby considerably degrading the data transmission efficiency.
To solve the above problem, the header compression scheme is switched between the reliable mode and the optimistic mode, thereby improving the header compression efficiency and the data transmission efficiency. However, how to switch the header compression scheme has been unclear so far.